import logging  ## 切记直接导入logging,不要从flask中导入
from redis import StrictRedis


class Config(object):
    """配置"""

    # 给session设置加密 在ipython中(导入os,base64)：base64.b64encode(os.urandom(48))
    SECRET_KEY = 'dDBwKCQV+cGLL4Y2oODztp3kEbZqeZJG0vT0OsRh4afigwYhaj+QAATynJElQjS+'
    # 数据库配置
    SQLALCHEMY_DATABASE_URI = "mysql://root:mysql@127.0.0.1:3306/information"
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    # redis配置
    REDIS_HOST = '127.0.0.1'
    REDIS_PORT = 6379
    # 给flask_session 中的Session添加配置
    SESSION_TYPE = 'redis'  # 指定session值储存的数据库为：redis
    # 这个redis对象专门用来存储session的值
    SESSION_REDIS = StrictRedis(host=REDIS_HOST,port=REDIS_PORT)
    SESSION_USE_SIGNER = True  # 给cookie设置标签加密
    SESSION_PERMANENT = False  # session默认永久保存的到期值为False
    permanent_session_lifetime = 86400*2  # session的到期时间为两天
    # 在请求结束时候，如果指定此配置为 True, 对模型身上的属性有修改,可以实现自动db.session.commit()
    SQLALCHEMY_COMMIT_ON_TEARDOWN = True
    # 设置日志等级
    LOG_LEVEL = logging.DEBUG


class DevelopmentConfig(Config):
    """开发模式下的配置"""
    DEBUG = True


class ProductionConfig(Config):
    """生产模式下的配置"""
    DEBUG = False
    LOG_LEVEL = logging.WARNING

class TestingConfig(Config):
    """单元测试模式下的配置"""
    DEBUG = True
    TESTING  = True

config = {
    'DevelopmentConfig':DevelopmentConfig,
    'ProductionConfig':ProductionConfig,
    'TestingConfig':TestingConfig
}